Modulation codes have been employed within magnetic recording channels in order to achieve a more even distribution of magnetic flux transitions within a data track in view of data patterns of particular user information being encoded and recorded. In particular, run length limited (RLL) modulation codes have been employed within partial response, maximum likelihood sampling detection (PRML) data recording and playback channels, decision feedback equalization (DFE) detection channels, and fixed delay tree search (FDTS) detection channels.
Canonical partial response targets of interest for magnetic data storage channels have included a (1-D) di-code target, a PR4 (1-D.sup.2) target, an EPR4 (1+D-D.sup.2 -D.sup.3) target and an E.sup.2 PR4 target, where D represents a unit delay operator. One drawback of a canonical target of form (1-D)(1+D).sup.N is that it is only an approximate match to the magnetic channel but is relatively easily implemented; and it manifests a spectral null at the Nyquist sampling frequency. Other targets useful in magnetic recording channels include minimum mean square error (MMSE) type targets. A new class of fixed partial response targets is described in a pending patent application by Fisher et al, U.S. Ser. No. 09/034,933, filed on Mar. 4, 1998, entitled: "Disk Drive Using New Class of Fixed Partial Response Targets in a PRML Sampled Data Detection Channel", the disclosure thereof being hereby incorporated by reference.
In PRML sampling data detection systems Viterbi detectors are conventionally employed to achieve "maximum likelihood" detection of user data being played back from a magnetic recording medium. For example, a Viterbi detector having an eight state trellis (nominal EPR4 target) generally employs an iterative method in determining a maximum likelihood path or route along the various branches of the detector trellis. "Maximum likelihood" generally means a particular path through the trellis creating a minimum mean square error.
A modulation code for a PRML data recording and playback channel is selected to impose certain desired signal playback conditions desired or needed to achieve robust and reliable data sampling and to limit the span of information corrupted by errors in the recording/playback process, at the expense of some additional overhead information added to the coded data stream. The amount of additional overhead information directly relates to the "rate" or efficiency of the modulation code. The less overhead information added by the modulation code, the higher the rate or efficiency of the code. As efficiency increases less recording space is consumed by overhead information needed by the modulation code.
The "rate" of a particular modulation code is defined as the ratio of unencoded bits to encoded bits in the coded output data stream. For example, a rate 2/3 code would have two user bits translated into three code bits, and would have an efficiency of only 0.667 i.e., considered to be a low rate. A rate 8/9 modulation code would have a higher efficiency of 0.889. The rate is said to increase as the efficiency approaches unity, and modulation codes having efficiencies in excess of 0.889 are called "high rate" codes.
A rate 16/17 (=0.941) modulation code achieves an approximate six percent (6%) increase in recording density over a standard rate 8/9 modulation code. The increased rate realized with a rate 16/17 modulation code means that each code bit recorded on the magnetic recording medium (disk or tape) contains approximately 6% more user data information than contained within a similar code bit in accordance with a rate 8/9 modulation code. One example of a rate 16/17 modulation code is provided in commonly assigned U.S. Pat. No. 5,635,933 to Fitzpatrick, et al., entitled: "Rate 16/17 (D=0, G=6/I=7) Modulation Code for a Magnetic Recording Channel", the disclosure thereof being incorporated herein by reference. Another example of a rate 16/17 modulation code is provided by U.S. Pat. No. 5,757,822, by Fisher et al., entitled: Bit-Interleaved Rate 16/17 Modulation Code with Three-Way Byte-Interleaved EC", the disclosure thereof being incorporated herein by reference.
An example of a rate 24/25 modulation code is provided by U.S. Pat. No. 5,737,294, by Fisher et al., entitled: "Rate 24/25 Modulation Code for PRML Recording Channels", the disclosure thereof being incorporated herein by reference. An article by Wijngaarden and Immink entitled: "Combinatorial Construction of High Rate Runlength-limited Codes", IEEE Proceedings of Globecom 1996, pages 343-347, describes techniques for constructing high rate modulation codes. In the paper the authors described examples including a rate 16/17 (d=0,k=4) code and a rate 16/17 (d=0,k=6) code. One difficulty arising from the adoption of a very high rate modulation code is the considerable complexity usually required to realize practical hardware implementations of the encoding and decoding processes.
Added complexities are presented in the instance of multi-channel linear digital magnetic tape recording. Tape recording differs from rigid disk recording in that moving recording tape has relatively very low mass and is susceptible to substantial variation in instantaneous tape velocity. On the other hand, one or more rigid recording disks mounted to a rotating spindle manifest substantial angular momentum which impedes instantaneous change in angular velocity.
A number of circumstances have been found to contribute to tape velocity differentials. Eccentric spooling of the tape onto the supply or take up reel can result in repeatable velocity variations as the tape is fed from its eccentrically mounted spool or pancake. Defects in reels or other elements of the tape guide path can also contribute to tape differential velocity. Further, tape that has been spooled in e.g. a relatively dry or humidity-free environment and later stored for a time in a high humidity environment may experience constrained expansion from absorption of moisture, leading to unpredictable behavior causing sharp velocity differentials as the tape is fed from the spool.
One consequence of the variation in tape velocity is that the frequency of the recorded data becomes modulated by the velocity changes. In detecting the bits recorded on a tape, a phase locked loop is used to track any frequency variations, thus enabling reliable detection of bits recorded at very high recording densities as is commonly employed within PRML sampling data detection channels. To ensure that the phase locked loop works satisfactorily it is important to provide frequent phase error information. As considered at an input to a write preamplifier (output of precoder) a one corresponds to one polarity of write current, e.g. positive, and a zero corresponds to an opposite polarity of write current, e.g. negative. Whenever a one follows a zero, or a zero follows a one, a reversal of magnetization is written to the magnetic media, and a bell-shaped pulse approximately shaped like a Lorentzian function results in the sensed waveform during playback. In order to provide frequent timing and gain information needed during playback, long runs of no magnetic flux transitions, and long runs of consecutive magnetic flux transitions, are to be avoided. This objective is conventionally accomplished by run length limiting the bits at the input to a 1/(1+D.sup.2) precoder, where D is a unit delay operator.
In a modulation code for a PRML sampling magnetic tape recording channel, for example, it is desirable that a maximum run length constraint be sized in order to provide acceptable timing information to assure reasonably accurate sampling of the recorded waveform during playback. The maximum number of consecutive zero bits permitted by the modulation code is referred to as the "k" constraint, while the minimum number of zero bits between one bits permitted by the code is referred to as the "d" constraint.
Information written onto a track of a magnetic tape is first modulation encoded before recording. In the detection process the analog playback signal is converted into modulation coded bits using the Viterbi detector process described above (or a similar device such as a decision feedback equalizer or a fixed delay tree search detector). The coded bits are decoded into information bits by passing through a modulation decoder. When errors occur in the detection process they can be further propagated into more errors in passing through the modulation decoder. One desired characteristic of a modulation code is that it limit or restrict the propagation of errors as much as possible. Limiting error propagation to a small amount of the recorded information desirably aids subsequent block error correction processes which are typically applied at the drive system level.
Magnetic storage systems typically include block memories and embedded control microprocessors. Currently, block memory arrays and control microprocessors used to handle data transfers within data storage systems are based upon 32 or 64 bit width bus architecture. As a consequence, the memory array's and the microprocessor's basic unit of data (data word) is 32 (or 64) bits. It is therefore desirable to provide a high rate modulation code which is congruent with the bus width of the block memory array and the control microprocessor in order to limit the complexity of circuitry interfacing the recording channel to the block memory and to the control microprocessor.
Therefore, a hitherto unsolved need has remained for a very high rate modulation code for a magnetic recording channel which meets the foregoing requirements and solves the problems associated with the prior approaches.